
/************************* DEFINES********************* */

/**********Generales**********/
#define FALSE  0
#define TRUE   1
#define ERROR -1

#define CLIENT 0
#define SERVER 1

/********Tamaños*************/

#define MAX_BUFFER 	1024
#define SIZE_HEADER   21
#define SIZE_DESCRIP  16
#define SIZE_T_STREAM  8

#define SIZE_SECTOR  512
#define SIZE_NOMBRE	  15
#define SIZE_NOMBRE_VDA  20
#define SIZE_NOMBRE_FILE 20
#define SIZE_KILOBYTE 1024
#define SIZE_CLIENTES 15 + 2 + 2
#define SIZEOF_SEM_T	16
#define SIZE_TDD 4 + SIZE_NOMBRE_VDA + SIZE_NOMBRE_FILE + 2 + 4 + SIZE_KILOBYTE + 4 + SIZEOF_SEM_T
#define ZISE_LOG 15
/********Tipos*************/

#define TIPO_VDA	  1
#define TIPO_FSS	  2
#define TIPO_FTP	  3

#define ARCHIVO_EXISTE 90

/***********Mensajes**********/

#define LECTURA 0
#define ESCRITURA 1
#define ELIMINAR  2

/**********Mensajes HANDSHAKE***************/
#define MSG_HANDSHAKE_VDA	     11
#define MSG_HANDSHAKE_FSS	     21
#define MSG_HANDSHAKE_FTP	     31

/**********Mensajes FSS***************/
#define MSG_FSS_EXISTE_ARCHIVO     51
#define MSG_FSS_INFO_ARCHIVO       52
#define MSG_FSS_CREAR_ARCHIVO      53
#define MSG_FSS_ELIMINAR_ARCHIVO   54
#define MSG_FSS_ACTUALIZAR_TAMANIO 55

#define MSG_FSS_R_ARCHIVO_CREADO   64
#define MSG_FSS_R_ARCHIVO_ERROR    65
#define MSG_FSS_R_ARCHIVO_OK       66
#define MSG_FSS_TRUE 			   67

/**********Mensajes VDA***************/
#define MSG_VDA_GET_SECTORES  	   71
#define MSG_VDA_GET_SECTORES_R     72
#define MSG_VDA_SET_SECTORES	   73
#define MSG_VDA_SET_SECTORES_R	   74
#define MSG_VDA_DOS_SECTORES_LIBRES 75

/**********Mensajes FTP***************/
#define MSG_SYS_OPEN		     41
#define MSG_SYS_READ	 		 42
#define MSG_SYS_FLUSH    		 43
#define MSG_SYS_CLOSE    		 44
#define MSG_SYS_LIST    		 45
#define MSG_SYS_WRITE    		 46

#define MSG_FTP_GET_SECTORES_R   81
#define	MSG_FTP_ARCHIVO_ERROR_R	 82
#define	MSG_FTP_ARCHIVO_OK_R	 83

#define MSG_ARCHIVO_ABIERTO 	101
#define MSG_ARCHIVO_ERROR		102

#define MSG_HANDSHAKE_RES		 12

/* DEFINICION PAYLOAD DESCRIPTORS */
#define HANDSHAKE_REQ 0
#define SYS_OPEN_REQ 1
#define SYS_READ_REQ 2
#define SYS_WRITE_REQ 3
#define SYS_CLOSE_REQ 4
#define SYS_FLUSH_REQ 5
#define SYS_LIST_REQ 6
#define EXISTE_ARCHIVO_REQ 7
#define INFO_ARCHIVO_REQ 8
#define ELIMINAR_ARCHIVO_REQ 9
#define CREAR_ARCHIVO_REQ 10
#define ACTUALIZAR_TAMANIO_REQ 11
#define CREAR_TABLA_SECTORES_LIBRES_REQ 12
#define DOS_SECTORES_LIBRES_REQ 13
#define ASIGNAR_SECTORES_REQ 14
#define LIBERAR_SECTORES_REQ 15
#define FORMETEAR_REQ 16
#define GET_SECTORES_REQ 17
#define PUT_SECTORES_REQ 18
#define GET_CHS_REQ 19
#define	HANDSHAKE_RESP	 20
#define HANDSHAKE_FTPS_ID	 21
#define HANDSHAKE_FSS_ID	 22
#define HANDSHAKE_VDA_ID	 23
#define OK	 24
#define FAIL	 25
#define SIGNAL_OPERATIVO 26
#define WAIT_OPERATIVO 27
